Methods, systems and devices for interacting with a computing device

ABSTRACT

Example embodiments relate to processing user interactions with a computing device, comprising receiving a user-initiated action performed on a character button, the character button representing a character; determining whether the user-initiated action is performed in a normal an abnormal operating manner. When a normal operating manner is determined, displaying the character on a graphical display. When an abnormal operating manner is determined: identifying a previously entered character preceding the character, activating a microphone and receiving, by the microphone, a spoken word, searching a subset of a database for a textual form of the received spoken word, the subset based on one or more of the character and the previously entered character, and displaying a correct textual form of the spoken word on a graphical display by amending one or more of the character and the previously entered character when one or more of the character and the previously entered character is inconsistent with the textual form of the spoken word found in the searching.

CROSS-REFERENCE TO RELATED APPLICATIONS

The present application is a continuation application of U.S. patentapplication Ser. No. 14/237,156 filed on Feb. 4, 2014, which isincorporated herein by reference in its entirety as set forth in full.

TECHNICAL FIELD

The present disclosure relates generally to methods, systems, devices,and computer-readable medium for interacting with a computing device.

BACKGROUND

Today, a variety of methods, systems, and input devices are availablefor interacting with computing devices. Examples include various formsof physical keyboards, both wired and wireless, that enable users topress physical buttons (or keys) of the keyboard to interact with thecomputing device. Examples of interacting include typing (or inputtingor entering) characters into one or more editable areas of the computingdevice, which may be correspondingly displayed on the computing device.Editable areas may include, but are not limited to, those found in anelectronic document, such as Microsoft Office products, email, andcloud-based documents such as Google Docs documents; an executableapplication, such as a computer program installed on the computingdevice and/or remotely located, in part or in whole, such as cloud-basedapplications; a chat or messaging application, such as email, SMS, MMS,iMessage, Google Chat, WhatsApp, Skype, Facebook Chat, Yahoo Chat,Messenger, Blackberry Messenger, and LinkedIn; and any other inputfields, as generally known by persons of ordinary skill in the art, thatallow users to interact and/or edit, such as those found in websites,desktop and mobile applications, social media, and electronic documents;and the like. Other input devices include a mouse, a touchpad, and morerecently, devices that recognize, among other things, human gestures andsound.

In respect to mobile computing devices, such as touchscreen-based mobiledevices like the iPad, iPhone, Samsung Galaxy, HTC One, Windows-baseddevices like the Nokia Lumina, and Blackberry, “soft” or virtualkeyboards are quickly replacing physical keyboards in popularity. Usersof virtual keyboards typically require practice in order to becomeproficient in character entry. However, even the most experiencedvirtual keyboard users will often press wrong buttons and/or missbuttons on the virtual keyboard, particularly for those virtualkeyboards having relatively small buttons, large buttons, closely spacedtogether buttons, and/or spread apart buttons. It is recognized hereinthat conventional methods of interacting with a computing device can beimproved so as to enable users to, among other things, more accuratelyand more efficiently input information into a computing device.

SUMMARY

Present example embodiments relate generally to methods, systems,devices, and computer-readable medium for interacting with a computingdevice.

In an exemplary embodiment, a method is disclosed for interacting with acomputing device, comprising receiving a user-initiated action performedon a character button of a keyboard, the character button representing acharacter. The method further comprises activating a microphone inresponse to receiving the user-initiated action. The method furthercomprises receiving, by the microphone, a spoken word. The methodfurther comprises searching a subset of a database for the receivedspoken word and displaying a textual form of the spoken word on agraphical display when the searching returns a match.

In an exemplary embodiment, a method is described for processing userinteractions with a computing device. The method comprises receiving auser-initiated action performed on a character button of a keyboard, thecharacter button representing a character. The method further comprisesdetermining whether the user-initiated action is performed in a normaloperating manner or an abnormal operating manner. When the receiveduser-initiated action is performed in a normal operating manner, themethod further comprises displaying the character on a graphicaldisplay. When the received user-initiated action is performed in anabnormal operating manner, the method further comprises identifying apreviously entered character preceding the character, activating amicrophone and receiving, by the microphone, a spoken word, searching asubset of a database for a textual form of the received spoken word, thesubset based on one or more of the character and the previously enteredcharacter, and displaying a correct textual form of the spoken word on agraphical display by amending one or more of the character and thepreviously entered character when one or more of the character and thepreviously entered character is inconsistent with the textual form ofthe spoken word found in the searching.

In another exemplary embodiment, a method is described for processinguser interactions with a computing device. The method comprisesreceiving a user-initiated action performed on a character button of akeyboard, the character button representing a character. The methodfurther comprises determining whether the user-initiated action isperformed in a normal operating manner or an abnormal operating manner.When the received user-initiated action is performed in a normaloperating manner, the method further comprises displaying the characteron a graphical display. When the received user-initiated action isperformed in an abnormal operating manner, the method further comprisesactivating a microphone; receiving, by the microphone, a spoken word;determining whether the character is preceded by a previously enterednon-null character; when the character is not preceded by a previouslyentered non-null character, searching a subset of a database for thereceived spoken word based on the character and displaying a correcttextual form of the spoken word on a graphical display when thesearching returns a match; and when the character is preceded by apreviously entered non-null character: searching a subset of thedatabase for the received spoken word based on one or more of thecharacter and the previously entered non-null character; and displayinga correct textual form of the spoken word on a graphical display whenthe searching returns a match.

In another exemplary embodiment, a system is described, comprising agraphical display; a microphone; a database; a keyboard; and a processorin communication with the graphical display, the microphone, thedatabase, and the keyboard. The processor is operable to: receive auser-initiated action performed on a character button of the keyboard,the character button representing a character; determine whether theuser-initiated action is performed in a normal operating manner or anabnormal operating manner; when the received user-initiated action isperformed in a normal operating manner, displaying the character on thegraphical display; and when the received user-initiated action isperformed in an abnormal operating manner: identifying a previouslyentered character preceding the character; activating a microphone andreceiving, by the microphone, a spoken word; searching a subset of adatabase for a textual form of the received spoken word, the subsetbased on one or more of the character and the previously enteredcharacter; and displaying a correct textual form of the spoken word on agraphical display by amending one or more of the character and thepreviously entered character when one or more of the character and thepreviously entered character is inconsistent with the textual form ofthe spoken word found in the searching.

In another exemplary embodiment, logic for processing user interactionswith a computing device is described. The logic is embodied in anon-transitory computer-readable medium and, when executed, operable tocause the computing device to perform the steps of: receiving auser-initiated action performed on a character button of a keyboard, thecharacter button representing a character; determining whether theuser-initiated action is performed in a normal operating manner or anabnormal operating manner; when the received user-initiated action isperformed in a normal operating manner, displaying the character on agraphical display; and when the received user-initiated action isperformed in an abnormal operating manner: identifying a previouslyentered character preceding the character; activating a microphone andreceiving, by the microphone, a spoken word; searching a subset of adatabase for a textual form of the received spoken word, the subsetbased on one or more of the character and the previously enteredcharacter; and displaying a correct textual form of the spoken word on agraphical display by amending one or more of the character and thepreviously entered character when one or more of the character and thepreviously entered character is inconsistent with the textual form ofthe spoken word found in the searching.

In another exemplary embodiment, a computing device is describedcomprising a graphical display; a microphone; a database; a keyboard;and a processor in communication with the graphical display, themicrophone, the database, and the keyboard. The processor is operableto: receive a user-initiated action performed on a character button ofthe keyboard, the character button representing a character; determinewhether the user-initiated action is performed in a normal operatingmanner or an abnormal operating manner; when the received user-initiatedaction is performed in a normal operating manner, display the characteron a graphical display; and when the received user-initiated action isperformed in an abnormal operating manner: activate the microphone;receive a spoken word from the microphone; search a subset of thedatabase for the received spoken word based on the character; anddisplay a textual form of the spoken word on the graphical display whenthe searching returns a match.

In another exemplary embodiment, a computing device is describedcomprising: a graphical display; a keyboard for interacting with aneditable section displayed on the display screen, the keyboardcomprising a character button representing a character; a microphone; adatabase comprising a textual form of a word, wherein the textual formof the word is searchable using a spoken word receivable by themicrophone; and a processor in communication with the graphical display,the keyboard, the microphone, and the database, the processor operableto determine when the character button is interacted in a normaloperating manner and an abnormal operating manner; wherein the processoris operable, when the character button is interacted in a normaloperating manner, to add the character to the editable section; andwherein the processor is operable, when the character button isinteracted in an abnormal operating manner, to activate the microphoneto receive a spoken word; convert the spoken word into a form searchablein the database; search a subset of the database for a textual form ofthe spoken word; and display the textual form onto the editable section.

In another exemplary embodiment, a computing device is describedcomprising: a touchscreen display; a microphone; a computer-readablemedium comprising a database; and a processor in communication with thetouchscreen display, the microphone, and the database, the processoroperable to: display a virtual keyboard on the touchscreen display, thevirtual keyboard comprising a character button representing a character;when a character button of the virtual keyboard is pressed in a normaloperating manner, display the character in an editable section displayedon the touchscreen display; and when the character button is pressed inan abnormal operating manner: activate the microphone to receive aspoken word; receive the spoken word and convert the spoken word into aform searchable in the database; identify the character and anyimmediately preceding non-null characters; identify a first character ofthe spoken word; identify a subset of the database comprising wordsstarting with the first character and comprising the character; searchthe subset for a word matching the converted spoken word; when thesearch does not yield a match, modify the subset to comprise wordsstarting with a related character to the first character and/orcomprising a related character to the character; and display a textualform of the spoken word in the editable section.

BRIEF DESCRIPTION OF THE DRAWINGS

For a more complete understanding of the present disclosure, exampleembodiments, and their advantages, reference is now made to thefollowing description taken in conjunction with the accompanyingdrawings, in which like reference numbers indicate like features, and:

FIG. 1 is an embodiment of a system for interacting with a computingdevice; and

FIG. 2 is an embodiment of a method for interacting with a computingdevice.

Although similar reference numbers may be used to refer to similarelements for convenience, it can be appreciated that each of the variousexample embodiments may be considered to be distinct variations.

DETAILED DESCRIPTION

Example embodiments will now be described hereinafter with reference tothe accompanying drawings, which form a part hereof, and whichillustrate example embodiments which may be practiced. As used in thedisclosures and the appended claims, the terms “embodiment”, “exampleembodiment”, and “exemplary embodiment” do not necessarily refer to asingle embodiment, although they may, and various example embodimentsmay be readily combined and interchanged, without departing from thescope or spirit of example embodiments. Furthermore, the terminology asused herein is for the purpose of describing example embodiments onlyand is not intended to be limitations. In this respect, as used herein,the term “in” may include “in” and “on”, and the terms “a,” “an” and“the” may include singular and plural references. Furthermore, as usedherein, the term “by” may also mean “from”, depending on the context.Furthermore, as used herein, the term “if' may also mean “when” or“upon,” depending on the context. Furthermore, as used herein, the words“and/or” may refer to and encompass any and all possible combinations ofone or more of the associated listed items. Furthermore, as used herein,the word “press” may also mean “hit”, “touch”, “contact”, “key”, “type”,“enter”, “input”, “slide”, “swipe”, or the like, when used to describe auser's interaction with a button of a keyboard. Furthermore, as usedherein, the word “swipe” may also mean “slide”, or the like, when usedto describe a user's action of pressing down on a first button of akeyboard but releasing the press from a second button different from thefirst button.

Today, users of inputting devices generally encounter problems with,among other things, accuracy and speed in entering information. Inrespect to computing devices having touchscreen displays, such astablets, mobile phones, wearable devices, and digital cameras, theconventional problems described herein are compounded by the fact thatusers of virtual keyboards are typically required to also hold thecomputing device as they interact with it.

Recent developments have improved user experience. For example, userspresently have options to purchase various forms, shapes, and sizes ofportable physical keyboards, such as those operable to communicate withthe computing device using Bluetooth, WiFi, and wires. While suchsolutions enable users to physically touch and feel each button as theytype, such solutions introduce new problems, including requiring usersto carry a separate keyboard and increasing power consumption.Furthermore, many of the problems encountered with other conventionalinputting devices and methods, including those described above andherein, may also present in portable keyboards. For example, users willoften press wrong buttons and/or miss buttons on the portable keyboard,particularly when they have relatively small buttons, large buttons,closely spaced together buttons, and/or spread apart buttons.

As another example, recent developments have provided users with voicedictation capabilities. Such solutions, however, generally require theuser to initiate dictation from an external application and/or bypressing a designated voice dictation button (ex. a button having amicrophone symbol) to activate and deactivate the voice dictationfeature, which can be cumbersome, tedious, time-consuming, and/ordisrupt the user's train of thought. Furthermore, such solutions may notbe preferable for users who do not want others nearby to coherently hearand understand the user's message. Furthermore, such solutionsinherently possess technological limitations and problems. For example,the response time of a voice dictation software will generally beproportional to the size of, or number of stored recognizable words in,a corresponding database. Furthermore, other limitations, such as thosepertaining to device processing speed, memory cache, and networkconnectivity and speed (for those wherein the database and/or processingoccurs remotely, such as in the cloud), and speech recognition parsingand analysis may require the user to speak slowly and/or cause aprolonged pause inbetween words, which is unnatural. A furtherlimitation in voice dictation pertains to the general notion, asreflected in various independent studies regarding voice recognitiontechnology, that the success rate of voice recognition will vary amongusers and the overall accuracy in reducing spoken words to text willdecrease as the number of spoken words increases; and one of the mostdifficult (or least accurate) aspects of a spoken word to accurately andefficiently process and reduce to text is often the first sound (ie.typically the first letter of a spoken word) of the spoken word.Furthermore, in some situations, after typing the first one or moreletters (such as “d”, “i”, and “a”) of a desired word (such as“diarrhea”), a user may realize that he/she does not know how tocorrectly spell the word (ex. is the “a” followed by an “r” or an “h”?).A user having a voice dictation feature may press a designated voicedictation activation button to launch the voice dictation feature andspeak the word. It is recognized herein that a problem arises in suchsituations since the voice dictation feature, when finding a match forthe spoken word (such as “diarrhea”), will append/add the textual formof the word to the already typed first one or more letters. An exampleundesirable result will be the incorrectly spelled word “diadiarrhea”.If the user realizes the error, the user will be required to waste timeand efforts to go back and delete the first three letters. Otherwise,the user will have typed an incorrect word.

As another example of recent developments, computing devices, such asthose described above, often include features for “auto-completing” orpredicting what a user intends to type after the user presses on acertain minimum number of buttons. This solution, however, is notwithout its own problems. For example, this prediction method willtypically require the user to type at least three or more charactersbefore the prediction functionality kicks in. It is recognized herein,however, that because the overall accuracy of typing generally reducesas a user types more characters, the overall accuracy of typing three(or more) characters will generally be less than typing two characters,and likewise, the overall accuracy of typing two (or more) characterswill generally be less than typing one character. A direct consequenceof this is the often-encountered problem of typing one or more incorrectcharacters before the prediction software kicks—causing the predictionto incorrectly predict or not be able to predict at all.

As another example of a problem with prediction methods, even if a usercorrectly enters the first three or more characters, such methodstypically provide the user with several predicted (or suggested) words(in a list), which then requires the user to select, such as bytouching, tapping, or using arrow keys, the desired word (if any). Forexample, if a user enters the letter “d”, the system will wait for thenext letter. If the user follows with an “i”, the prediction softwarewill continue to wait for a third letter. If the user then enters an“a”, the prediction software may provide suggestions, such as“diabolic”, “diagram”, “diameter”, “diarrhea”, etc. If the user sees asuggested word that matches what the user intends, such as “diarrhea”,the user can either continue typing the next letter, such as “r”, tofurther filter the predicted words or accurately select (tap) the word“diarrhea” from the list. In respect to the latter, a further problemarises when a user unintentionally selects the wrong word from the list.In general, although prediction methods are generally quicker in thelong run than having to type every character in a word, it is recognizedherein that oftentimes a user may spend more time correcting incorrectlyentered characters and/or incorrectly selecting predicted words from alist of predicted words.

Present example embodiments relate generally to an information inputmethod, system, device, and computer-readable medium, including thosepertaining to a virtual or physical keyboard that, when installed orconnected, may solve many of the above problems encountered inconventional methods.

An example embodiment of a keyboard enables a user to press a button (orkey), or a graphical or visual rendition thereof, in a normal operatingmanner to interact with the computing device, such as to add a charactercorresponding to the pressed button, onto an editable section displayedon the computing device. Although some example embodiments describedhereinafter may be directed to virtual and/or physical keyboards ofcomputing devices, it is to be understood herein that exampleembodiments may also be directed to other types of information inputtingmethods, systems, and devices, including portable physical keyboards,keyboards that are projected onto a surface, such as a tabletop or wall,and keyboards that enable users to interact using gestures and/or voice.

As used herein, “pressing a button” includes pressing a button of aphysical keyboard, a button of a virtual keyboard on a touch-screen,and/or a button of a virtual or projected keyboard projected onto a flatsurface. Furthermore, as used herein, “normal operating manner” includesinteracting with a button, including pressing a button, for not morethan a “typical typing duration”. In this regard, pressing a button in anormal operating manner is generally performed when there is an intentto add and/or display a single character corresponding to the pressedbutton. Furthermore, as used herein, an “abnormal operating manner” mayinclude any user-initiated act that is not a normal operating manner.For example, an abnormal operating manner may include the pressing of abutton for more than the typical typing duration, the swiping from abutton to another area (such as to another button or to an area that isnot a button), the pressing of a button and shaking in or about the sametime (such as shaking of a computing device having an accelerometer, orthe like), or the like. Furthermore, as used herein, “typical typingduration” includes any amount of time (T_(typical)) less than or equalto a maximum amount of time (T_(threshold)) that a button of a keyboardcan be pressed so as to result in a single character being added ordisplayed. It is to be understood herein that T_(threshold) may be apre-set duration that is commonly used in conventional keyboards, suchas 1 second, configurable by the user, and/or adaptable based on theuser's typing habits.

It is recognized herein that a button of a keyboard pressed for morethan T_(threshold) typically results in repeatedly adding the characteror popping up of a box (in the case of a virtual keyboard) comprisingalternative characters to choose from. Furthermore, in some virtualkeyboards, when a user presses down on a button (such as the letter “t”)and slides (or swipes or moves while still contacting the screen) toanother button before releasing (i.e. the release of the depressionoccurs at a different button, such as the letter “p”), the result may bethe adding of the character of the latter button (in this case, theletter “p”).

Example embodiments of the keyboard may be distinct from conventionalkeyboards in several ways. For example, pressing of a button (such asthe button for the letter “t”) for a duration greater than T_(threshold)may not repeatedly add a character or pop up a window comprisingalternative characters, although it may. As another example, pressing ofa virtual button and releasing contact from a different button (such asthe above-described “swiping” or sliding along a touch screen of amobile device) may not necessarily add the latter button, although itmay.

As illustrated in FIG. 1, example embodiments of system 100 comprises acomputing device 110, such as a mobile device, and optionally anattached keyboard 117, an attached microphone 119, and a network 120.The computing device 110 comprises a touch-screen 112 or screenprojected onto a flat surface (not shown) operable to receive physicalinteractions and/or gestures/sounds from a user, a microphone 118integrated or built into the computing device 110, and a virtualkeyboard 116 installed therein operable translate the physicalinteractions into a pressing of a button of the virtual keyboard 116. Itis to be understood herein that the virtual keyboard 116 may beconfigurable in a plurality of ways, including those in the form of aQWERTY configuration and those for languages other than English, andsuch configurations may be changeable and/or configurable by the user.

In an example embodiment illustrated in FIG. 2, a keyboard is activatedin and/or connected/attached 202 to the computing device 110. One ormore editable sections 114 displayed on a graphical display 112 may beactive, that is, when an application, program, or the like, running onthe computing device 110 allows for a user to interact by pressing abutton of the keyboard 116, 117. Computing device 110, or processorthereof, will wait for a user-initiated interaction 204. Upon receivinga user-initiated action 206, such as a button press, computing device110 identifies 208, and optionally saves, the user-initiated action andthe character (“pressed character”) associated with the pressed button(ex. the letter “t”). Computing device 110 may also keep track of howlong the button is pressed before being released 210. After the buttonis released, the computing device 110 determines if the duration of thebutton press (T_(press)) is greater than T_(threshold) 210. If T_(press)is less than or equal to T_(threshold) (T_(press)≦T_(threshold)), asindicated by “no” in FIG. 2, computing device 110 proceeds to displaythe character 232, that is, add the pressed character (ex. letter “t”)to the one or more active editable sections 114 of the graphicaldisplay, and returns back to waiting for a next user interaction 204.

If, however, T_(press) is greater than T_(threshold)(T_(press)>T_(threshold)), as indicated by “yes” in FIG. 2, computingdevice 110 may not immediately add the character to the editable section114 (ex. “t” not added to editable section). That is, before doing so,the computing device 110 may determine if the pressed character is afirst character of a word 212 by, for example, determining if there is anon-null character that has been entered immediately before the pressedcharacter (an “immediately preceding non-null character”, such as theletter “s” before the pressed character “t”). As used herein, a non-nullcharacter will refer to a character that is not a space, tab, or nullcharacter. If there is no immediately preceding non-null character, asindicated by “no” in FIG. 2, the pressed character is used to performthe next steps, which may optionally include saving the pressedcharacter. In this situation, the pressed character will be referred toas the “target character”. In example embodiments, the pressed buttonmay be optionally deactivated. Furthermore, some or all of the remainingbuttons of the keyboard 116, 117 may also be optionally deactivated. Asused herein, the deactivating of one or more buttons will refer totemporarily restricting a user from entering the character of the buttonuntil one or more actions is performed and/or received. For example,after one or more of the buttons become deactivated, a subsequentpressing of one or more buttons, such as the target button or the “ESC”button, may reactivate the buttons and return back to waiting for a userinteraction.

The computing device 110 then proceeds to activate 214 an exampleembodiment of voice dictation (a procedure, function, program, and/orapplication), which may reside (installed) in the computing device 110,remotely from the computing device 130, such as in the cloud 120 orinternet 120, or both. Example embodiments of the voice dictation, whenactivated as described above, inturn activates 216 the microphone 118,119. It is to be understood that the activated microphone 118, 119 canbe the microphone 118 built into the computing device 110 and/or aperipherally attached microphone 119.

In or about the time that the microphone 118, 119 is activated 216, thepressed button may optionally be highlighted 218 for the user to see,such as by changing the color of the pressed button, causing the pressedbutton to appear pressed, and/or causing the pressed button to blink.Alternatively or in addition, a haptic feedback response, as known inthe art, may optionally be provided to the user in or about the time ofactivating the microphone. The microphone 118, 119 then waits for aspoken word from the user. Upon receiving a spoken word 220, which isunderstood by persons of ordinary skill in the art to be in analog (orraw) form, the computing device 110 optionally saves the raw spoken wordand deactivates the microphone 118, 119. The computing device 110,and/or one or more processors 130 located remotely that are incommunication with the computing device 110, is/are then operable toconvert the raw spoken word into a digital form. The digital form of thespoken word is then optionally saved. Example embodiments of the voicedictation may then be operable to process the digital spoken word, asfollows: instead of searching an entire or most of a database of spokenwords (in digital form), the processor(s) may start by searching only aspecific subsection or subset of the database 222, such as onecomprising of only words that begin with the target character (ex. theletter “t”). It is to be understood herein that the database (not shown)may reside in the computing device 110 and/or reside in one or moreremote databases (140). It is recognized herein that example embodimentsprovide for, among other things, a more quick, efficient, and accurateway to perform voice dictation. For example, since only a relevantportion of the database is firstly searched, the searching time andprocessing efforts becomes significantly reduced. Furthermore, since thefirst letter of the intended word is known (provided by the user by wayof pressing the letter for a duration greater than T_(threshold)(T_(press)>T_(threshold))), one of the more difficult aspects of aspoken word to analyze, which is typically the first sound (or letter),is no longer a problem. In example embodiments, the identification ofthe pressed character and/or the first character may be performablebefore or after activating the voice dictation, activating themicrophone, and/or receiving the spoken word.

In situations wherein the search does not find a match, as indicated by“no” in FIG. 2, example embodiments may modify the subset 226 beingsearched. For example, the subset may comprise words having one or moreother letter(s) (such as one or more immediately preceding non-nullcharacters), and may also comprise the pressed character. The subset mayalso comprise, in addition to or in replacement of the above, words thatstart with and/or comprise character(s) having a relation to the targetcharacter, such as by sound and/or button location. For example, if thepressed character is the letter “c”, the next search(es) may be in asubset of words that start with and/or comprise the letter “s” or “k” orboth, and so on. As another example, if the pressed character is an “i”,the next search(es) may be in a subset of words that start with and/orcomprise a character of one or more neighboring buttons, such as thecharacter “u”, “o”, “j”, “k”, and/or “l”. This may be advantageous inview of users oftentimes accidentally pressing a neighboring button tothe intended button. The subsets described herein may be combinableand/or replaceable with other approaches. It is recognized herein thatexample embodiments of subsets, including the dynamically selecting ofone or more appropriate subsets based on, among other things, thepressed character, one or more immediately preceding non-nullcharacters, the first character, related characters, neighboringcharacters, user typing patterns, previously stored informationpertaining to matched textual forms of previously spoken words, and thelike, may provide improvements over conventional methods.

When the search of the digital spoken word returns one or more matches,as indicated by “yes” in FIG. 2, example embodiments of the voicedictation function may be operable to add the matched word to theeditable section 228 and/or provide to the user a selection of closestmatched words 228 (such as by way of a pop-up window, or the like). Thepreviously deactivated pressed button, if deactivated, then becomesre-activated, and the keyboard 116, 117 returns back to waiting for thenext user-initiated interaction 204. It is to be understood that thepressed button and other buttons may not be deactivated at all, whichwould advantageously allow the user to continuously type other buttonsafter pressing the pressed button for greater than T_(threshold) (orswiping, which will be explained later). In this regard, the pressing ofthe pressed button for greater than T_(threshold) may be accidental orthe user may decide to cancel the voice dictation function and continuetyping.

In example embodiments, a designated character button, such as the “;”button or a special button may be operable to search a special databaseof words for a received spoken word. The special database may includeuser-customizable words, specific words of a particular subject matter,or the like.

In example embodiments, in or about the time a matched word is foundand/or displayed/added, computing device 110 (or one or more processors130 in remote communication with computing device 110) is optionallyoperable to save 230 information pertaining to the match for future use.For example, an association of the spoken word, the digital form of thespoken word, and/or the textual form of the matched spoken word may besaved into a database, such as the same database, a new subset of thesame database, and/or a new previously matched words database, forfuture use. In example embodiments, this database may be the firstdatabase to be searched in future searches, which may enable furtherimproving of response and/or processing time. If this database is thefirst database searched and no matches are found, the above-describedexample embodiments of searching are then subsequently performed.

In example embodiments wherein the pressed character is not a firstcharacter of the spoken word, such as when an immediately precedingnon-null character is found (ex. the letter “i”), the pressed character(ex. the letter “a”) may be saved and the immediately preceding non-nullcharacter may be identified and saved. The computing device may thenproceed to determine the first character 234, such as by repeating theprocess by determining whether there is an immediately precedingnon-null character (ex. the letter “d”) before the identifiedimmediately preceding non-null character. This may go on until there areno more immediately preceding non-null characters (ie. the first letterof the word is reached). Collectively, the first character and allimmediately preceding non-null characters will be referred as “previouscharacters” of the pressed character. The last immediately precedingnon-null character (ex. the letter “d”), which corresponds to the firstcharacter of the intended word (or spoken word), may then become the“target character”. It is to be understood that the target character(s)may also be one or more of the pressed character, one or more previouscharacters, and/or the first character. Example embodiments are thenoperable to perform substantially the same operations as describedabove, as indicated by reference numbers 236, 238, 240, 242, 244, 246,248, 250, and 252 for searching a matched word from one or moresubsections of the database using one or more of the pressed character,previous characters, and first character. It is recognized herein thatthe scope of the search (the size of the database or subset of thedatabase being searched) may be further reduced to only those wordscomprising or starting with the pressed character and some or all of theimmediately preceding non-null characters. For example, the subset ofthe database searched may comprise words beginning with characters “d”,“i”, and “a” to match the spoken word. If there are no matches from thissubset search, the subset of the database searched may be modified tocomprise words having the characters “d”, “i”, and “a” in any order. Ifthere are no matches from this subset search, the subset of the databasesearched may be modified to comprise words beginning with the characters“d” and “i”. And so on until a match of the spoken word is found.

It is recognized herein that situations may arise wherein the firstcharacter, the one or more previous characters, and/or the pressedcharacter are incorrectly entered (either incorrect character and/ororder) by the user. For example, a user attempting to type the word“diarrhea” may have entered the first character “d”, previous characters“i”, “a”, and “h”, and the pressed character “r” (as previouslydescribed, the pressed character may correspond to the character whichreceived a user interaction in an abnormal operating manner, such aspressing of the character button for greater than a threshold duration,swiping, shaking, and/or rotating a press point about a characterbutton). In example embodiments, such incorrectly entered characters aredeterminable when performing a search based on the received spoken word.When it is determined that one or more of the entered characters, whichmay include a first character, one or more previous characters, and thepressed character, are entered incorrectly, example embodiments areoperable to perform amendments (or replacement, deletion, or addition)to and/or about one or more of the entered character(s), including theincorrectly entered character(s). In other words, an overall correcttextual form of the spoken word is provided, and in doing so, previouslyentered characters are also considered and amended, if necessary. In theabove example wherein the spoken word is “diarrhea” and enteredcharacters are first character “d”, previous characters “i”, “a”, and“h”, and pressed character “r”, example embodiments will provide thetextual form “diarrhea” instead of, for example, “diahrdiarrhea” or“diahrrhea”. In situations wherein the entered characters are correctlyentered (correct characters and order), such as the first characterbeing “d”, the previous characters being “i”, “a”, and “r”, and thepressed character being “r”, example embodiments are operable to eitheradd/append the remaining characters to complete the textual form of thespoken word “diarrhea”, such as adding/appending the letters “h”, “e”,and “a”, and/or replace one or more of the entered characters. Eitherway, example embodiments are operable to provide the correct textualform “diarrhea” instead of, for example, “diarrdiarrhea”. It isrecognized herein that conventional problems encountered, such as theappending/adding of the textual form of the matched word to the enteredcharacters (which may include the first character, the one or moreprevious characters, and the pressed character), can be solved byexample embodiments. Furthermore, since a user-initiated action totrigger or activate an abnormal operating manner in example embodimentsare performable about one or more character buttons (such as characterbutton “d”), which represents a character (such as character “d” or“D”), it is recognized herein that example embodiments enable a user tocontinue typing as one would normally do and need not look for adesignated voice dictation application icon when such is needed. Thatis, as the user is typing in a normal manner, the user may engage anddisengage voice dictation in example embodiments without leaving theproximity of the character buttons of the keyboard. It is alsorecognized herein that example embodiments do not require voicedictation to be “always-on”, which may include continuously recordingand performing voice to text conversion, which is recognized herein tocause problems, including draining of battery, unnecessary consumptionof energy, unnecessary occupying of temporary memory storage, andbogging down of one or more processors.

In another example embodiment, in addition to or instead of determiningwhether or not a button is pressed based on T_(threshold), theuser-initiated action or interaction that is an abnormal operatingmanner may include other forms of user-initiated actions. For example,example embodiments, as described above and herein, may activate upon auser swiping or sliding from a first button to another part of thetouchscreen, such as to one or more other buttons or away from thevirtual keyboard (pressing on a first button but releasing from a secondbutton or to a section of the display touchscreen that is not thevirtual keyboard). In an example embodiment, the character representingthe first button may be the pressed character. In other exampleembodiments, the character representing the first button may be the lastimmediately preceding non-null character and the second button may bethe pressed character. In this case, some or all buttons pressed duringthe swipe or slide between the first button and the second button mayalso be called an immediately preceding non-null character for thepurposes of the search, as described herein. Thereafter, exampleembodiments are operable to perform substantially the same operations asdescribed above and herein for finding the matched word or words fromone or more subsets of the database. In another example embodiment, theabnormal operating manner may comprise pressing a button and shaking thecomputing device, wherein the computing device comprises anaccelerometer, or the like, operable to receive device movement(s) andtranslate the movement(s) into instructions to perform activating of thevoice dictation, etc.

In the example embodiments described herein, a space (such as ASCII “32”or HTML “&nbsp”) may be added after a matched word is displayed. Thismay be particularly advantageous for users when the interacting with thecomputing device involves inputting sentences into an editable sectionsince the user need not press the space button before proceeding to thenext word. Alternatively or in addition, example embodiments areoperable to predict or guess whether a next word will follow the matchedword. In this regard, if the matched word is predicted to be a last wordin a sentence, a space may not necessarily be added after the matchedword is displayed, although it may. If a space is not added, the usermay proceed to complete the sentence with a period, question mark,exclamation mark, or the like. Alternatively or in addition, exampleembodiments are operable to add a space after adding the matched wordand subsequently remove or delete the added space when a user enters aperiod, question mark, exclamation mark, or the like.

Example implementations for the above described example embodiments arenow provided below.

EXAMPLE 1

An example embodiment of a computing device 110, such as a mobile phone,comprises a touchscreen 112, a processor (not shown), a built-inmicrophone 118, and a computer readable medium (not shown). The computerreadable medium comprises a database (not shown) and instructions forexample embodiments of the virtual keyboard application 116. Inoperation, a user may cause the processor to initiate (or activate)example embodiments of the virtual keyboard application 116 in one ormore of a plurality of ways, such as by tapping or touching onto aneditable section 114 displayed on the display screen. In the presentexample, the editable section 114 may be an input field in a chatapplication, such as WhatsApp or iMessage, and the user may desire toinput a series of words, such as “it appears I have a mild case ofdiarrhea.” Since a user may be readily able to type short words, such as“it”, “i”, “a”, and “of”, the user may not activate the voice dictationfunctionality. Instead, the user may start by pressing “i”, followed by“t”, followed by the space button. For the word “appears”, the user maypress and hold the letter “a” for a duration greater than T_(threshold).In doing so, the processor performs the instructions of the installedvirtual keyboard application 116 by first identifying the pressed buttonas corresponding to the letter “a” and determines that the user haspressed the “a” button for greater than T_(threshold). The processoralso recognizes that there are no immediately preceding non-nullcharacters. The processor then activates the microphone 118 and waitsfor a spoken word from the user. To prompt the user and/or let the userknow that he/she should speak the intended word, the “a” button (or anyother buttons or indications) may optionally be highlighted in red orany other color. Upon receiving the spoken word “appears” from the user,the processor performs the voice dictation procedure, which may includea conversion of the raw spoken word into a digital form of the spokenword in any manner known by persons of ordinary skill in the art.Thereafter, the processor may call one or more subsections of thedatabase comprising only words that start with the letter “a” andperform a search of the spoken word “appears”. If a match is found, theprocessor places the matched word “appears” into the appropriateposition of the editable section 114. Either before or after the search,the processor may de-activate the microphone 118. In or about the sametime the match is found, the processor may re-activate the “a” button(or any other deactivated buttons if the one or more buttons weredeactivated, which is optional) and returns to waiting for a userinteraction. In this example, the user may continue to press the letter“i”, followed by the space button, and may press the “h” button for aduration greater than T_(threshold). The processor then performs thesame series of steps, as described above for the spoken word “have”. Andso on.

It is recognized herein that example embodiments provide for fast,efficient, and accurate entering of information by uniquely combiningthe use of character keys of a keyboard 116, 117 with voice dictation,as described above and herein. In this regard, example embodiments maynot require users to launch external voice dictation applications bylooking for and pressing designated voice dictation buttons or icons,although it may, but instead allow users to continue typing as theynormally do, and launch example embodiments of voice dictation when theywant or when they need. For example, when a user intends to type theword “diarrhea”, after typing the letters “d”, “i”, and “a”, the usermay realize that he/she is unsure of how to spell the word—that is,whether the next letter should be a “r” or an “h”. It is recognizedherein that conventional methods would generally require the user to usethe backspace or delete button to delete what has been typed (theletters “d”, “i”, and “a”), and launch a dictionary or conventionalvoice dictation application, which is time-consuming and troublesome.Present example embodiments enable the user to simply press and hold abutton (such as the “a” or “r” or “h” button) and speak the word“diarrhea”, thereby saving the user time, effort, and making text entrymore accurate.

EXAMPLE 2

The above Example 1 may also be operable in example embodiments byswiping, sliding, shaking, rotating a pressed point about a characterbutton, and/or performing other movements of a pressed point about acharacter button (such as moving a finger back and forth when pressed ona character button), as described above and herein, in addition toand/or in replacement of pressing a button for greater thanT_(threshold).

EXAMPLE 3

Example embodiments, including the above Examples 1 and 2, may alsoshare processing, searching, and database storage 140 with one or moreprocessors 130 located locally (such as on the same WIFI network) and/orremotely, such as in the cloud 120. In such an example, the computingdevice 110 may be operable to connect, either by wires or wirelessly, tothe internet 120, an intranet 120, a WIFI network 120, or the like. Inexample embodiments, when a user presses on a button for a durationgreater than T_(threshold) (or swipes or slides or shakes, as describedabove), the processor of computing device 110 may perform instructionsof example embodiments of the keyboard to identify the pressed button,activate the microphone, receive the raw spoken word, and optionallyconvert the raw spoken word to a digital spoken word. Thereafter, thedigital spoken word (or raw spoken word) may be sent by the processor toone or more remote processors 130, such as those in the cloud 120, whosetask may be to search a database 140 to find one or more matching wordsin text form. When one or more matches are found, the text form(s) ofthe spoken word is/are sent back to the computing device 110, and theprocessor then places the text form of the spoken word into theappropriate part of the editable section 114. It is recognized hereinthat such example embodiments may be beneficial to users, includingthose who utilize more than one computing device 110 (such as a mobiledevice, tablet, personal laptop, work laptop, televisions, mediaplayers, and devices having cloud computing capabilities), and/orrequire searches in specialized or industry-specific databases.

Example applications for the example embodiments described hereininclude interacting, including inputting of information, into aneditable section displayed on the graphical display. Editable sectionsmay include, but are not limited to, those found in an electronicdocument, such as Microsoft Office products, email, and cloud-baseddocuments such as Google Docs documents; an executable application, suchas a computer program installed on the computing device and/or remotelylocated, in part or in whole, such as cloud-based applications; a chator messaging application, such as email, SMS, MMS, iMessage, GoogleChat, WhatsApp, Skype, Facebook Chat, Yahoo Chat, Messenger, BlackberryMessenger, and LinkedIn; and any other input fields, as generally knownby persons of ordinary skill in the art, that allow users to interactand/or edit, such as those found in websites, desktop and mobileapplications, social media, and electronic documents; and the like.Other example applications may include computer programs that assistusers in, among other things, inputting of information, learning alanguage, such as English, how to spell words, check the spelling ofwords, and teach kids how to associate a letter with words, graphics,and/or sounds. Example embodiments of a system, computing device, and/orprocessor described herein may be directed to desktop computers,all-in-one computers, laptops, notebooks, ultrabooks, readers,televisions, appliances, tablets, phablets, mobile phones, PDAs, musicplayers, video players, media players, Blue Ray players, DVD players,home theater components, digital cameras, internet kiosks, check-interminals, ticketing terminals, information terminals, a plurality ofcomputing devices interacting together in part or in whole, and otherspecialized computing devices, including arcade games, tabletopreplacement devices, and industry-specific computing devices. Exampleembodiments described herein may also be directed to wearable computingdevices, including glasses (such as Google Glasses). In suchapplications, it is to be understood that the user-initiatedinteractions or actions may include gestures and/or voice.

While various embodiments in accordance with the disclosed principleshave been described above, it should be understood that they have beenpresented by way of example only, and are not limiting. Thus, thebreadth and scope of the example embodiments described herein should notbe limited by any of the above-described exemplary embodiments, butshould be defined only in accordance with the claims and theirequivalents issuing from this disclosure. Furthermore, the aboveadvantages and features are provided in described embodiments, but shallnot limit the application of such issued claims to processes andstructures accomplishing any or all of the above advantages.

For example, as referred to herein, a computing device, communicationdevice, or capturing device may be a virtual machine, computer, node,instance, host, or machine in a networked computing environment. Also asreferred to herein, a network or cloud may be a collection of machinesconnected by communication channels that facilitate communicationsbetween machines and allow for machines to share resources. Network mayalso refer to a communication medium between processes on the samemachine. Also as referred to herein, a network element, node, or servermay be a machine deployed to execute a program operating as a socketlistener and may include software instances.

Resources may encompass any types of resources for running instancesincluding hardware (such as servers, clients, mainframe computers,networks, network storage, data sources, memory, central processing unittime, scientific instruments, and other computing devices), as well assoftware, software licenses, available network services, and othernon-hardware resources, or a combination thereof.

A network or cloud may include, but is not limited to, computing gridsystems, distributed computing environments, cloud computingenvironment, etc. Such network or cloud includes hardware and softwareinfrastructures configured to form a virtual organization comprised ofmultiple resources which may be in geographically disperse locations.

Although various computer elements, communication devices and capturingdevices have been illustrated herein as single device or machine, suchelements may operate over several different physical machines, or theymay be combined as operating code instances running on a single physicalmachine. The claims in the present application comprehend such variationin physical machine configurations.

Various terms used herein have special meanings within the presenttechnical field. Whether a particular term should be construed as such a“term of art,” depends on the context in which that term is used.“Connected to,” “in communication with,” or other similar terms shouldgenerally be construed broadly to include situations both wherecommunications and connections are direct between referenced elements orthrough one or more intermediaries between the referenced elements,including through the Internet or some other communicating network.“Network,” “system,” “environment,” and other similar terms generallyrefer to networked computing systems that embody one or more aspects ofthe present disclosure. These and other terms are to be construed inlight of the context in which they are used in the present disclosureand as those terms would be understood by one of ordinary skill in theart would understand those terms in the disclosed context. The abovedefinitions are not exclusive of other meanings that might be impartedto those terms based on the disclosed context.

Words of comparison, measurement, and timing such as “at the time,”“equivalent,” “during,” “complete,” and the like should be understood tomean “substantially at the time,” “substantially equivalent,”“substantially during,” “substantially complete,” etc., where“substantially” means that such comparisons, measurements, and timingsare practicable to accomplish the implicitly or expressly stated desiredresult. Words relating to relative position of elements such as “about,”“near,” “proximate to,” and “adjacent to” shall mean sufficiently closeto have a material effect upon the respective system elementinteractions.

Additionally, the section headings herein are provided for consistencywith the suggestions under various patent regulations and practice, orotherwise to provide organizational cues. These headings shall not limitor characterize the embodiments set out in any claims that may issuefrom this disclosure. Specifically, a description of a technology in the“Background” is not to be construed as an admission that technology isprior art to any embodiments in this disclosure. Furthermore, anyreference in this disclosure to “invention” in the singular should notbe used to argue that there is only a single point of novelty in thisdisclosure. Multiple inventions may be set forth according to thelimitations of the claims issuing from this disclosure, and such claimsaccordingly define the invention(s), and their equivalents, that areprotected thereby. In all instances, the scope of such claims shall beconsidered on their own merits in light of this disclosure, but shouldnot be constrained by the headings herein.

1-94. (canceled)
 95. A method for processing user interactions with aprocessor, the method comprising: displaying a virtual keyboard on atouchscreen display, the virtual keyboard comprising a character buttonrepresenting a character; when the character button representing thecharacter of the virtual keyboard is pressed in a normal operatingmanner, displaying the character in an editable section displayed on thetouchscreen display; and when the character button representing thecharacter is pressed in an abnormal operating manner: activating amicrophone to receive a spoken word; receiving the spoken word andconverting the spoken word into a form searchable in a database;identifying the character of the pressed character button and allimmediately preceding non-null characters displayed in the editablesection of the touchscreen display before the receiving of the spokenword; identifying a first subset of the database, the first subsetcomprising words having all of the identified immediately precedingnon-null characters and the identified character of the pressedcharacter button in any order; searching the first subset for a textualform of the received spoken word; when the search of the first subsetyields a match: performing a first amending of one or more of theidentified immediately preceding non-null characters and/or theidentified character of the pressed character button displayed in theeditable section based on the textual form of the received spoken wordfound in the search; and displaying the textual form of the receivedspoken word in the editable section based on the first amending; andwhen the search of the first subset does not yield a match: selecting asecond subset comprising words having one or more of the identifiedimmediately preceding non-null characters in an order different from theorder of the identified immediately preceding non-null characters usedin the first subset and not having the identified character of thepressed character button; searching the second subset for the textualform of the received spoken word; performing a second amending of one ormore of the identified immediately preceding non-null characters and theidentified character of the pressed character button displayed in theeditable section based on the textual form of the spoken word found inthe said searching of the second subset; and displaying the textual formof the spoken word found in the searching of the second subset in theeditable section based on the second amending.
 96. The method of claim95, wherein the abnormal operating manner comprises a pressing down onthe character button for greater than a threshold duration.
 97. Themethod of claim 95, further comprising displaying more than one textualforms of the spoken word on the touchscreen display when the searchingof any of the subsets return more than one match, wherein at least oneof the displayed textual forms are user-selectable from among the morethan one displayed textual forms.
 98. The method of claim 95, furthercomprising deactivating the character button after the character buttonis pressed in an abnormal operating matter.
 99. The method of claim 95,wherein one or more of the first and second subsets comprise wordshaving one or more characters related to one or more of the identifiedimmediately preceding non-null characters.
 100. A method for processinguser interactions with a processor, the method comprising: receiving auser-initiated action performed on a character button of a keyboard, thecharacter button representing a character; when the receiveduser-initiated action performed on the character button representing thecharacter is performed in a normal operating manner, displaying thecharacter in an editable section displayed on a graphical display; andwhen the received user-initiated action performed on the characterbutton representing the character is performed in an abnormal operatingmanner: activating a microphone and receiving, by the microphone, aspoken word; identifying immediately preceding non-null charactersdisplayed in the editable section; identifying a subset of a database,the subset comprising words having the identified immediately precedingnon-null characters in any order; searching the subset for a textualform of the received spoken word; when the search of the subset yields amatch: performing an amending of one or more of the identifiedimmediately preceding non-null characters displayed in the editablesection, the amending based on the textual form of the received spokenword found in the searching of the subset; and displaying the textualform of the received spoken word found in the searching of the subset inthe editable section based on the amending; and when the search of thesubset does not yield a match: selecting a second subset of thedatabase, the second subset comprising words not having one or more ofthe identified immediately preceding non-null characters; searching thesecond subset for the textual form of the received spoken word;performing a second amending of one or more of the identifiedimmediately preceding non-null characters displayed in the editablesection, the second amending based on the textual form of the receivedspoken word found in the searching of the second subset; and displayingthe textual form of the received spoken word found in the searching ofthe second subset in the editable section based on the second amending.101. The method of claim 100, further comprising: saving, in a seconddatabase, the received spoken word and an association of the receivedspoken word with the textual form of the spoken word found in thesearching of the second subset; receiving a second user-initiated actionperformed on a second character button of the keyboard, the secondcharacter button representing a second character, the seconduser-initiated action received after the receiving of the user-initiatedaction performed on the character button; when the received seconduser-initiated action performed on the second character buttonrepresenting the second character is performed in the normal operatingmanner, displaying the second character in the editable sectiondisplayed on the graphical display; and when the received seconduser-initiated action performed on the second character buttonrepresenting the second character is performed in the abnormal operatingmanner: activating the microphone and receiving, by the microphone, asecond spoken word; performing a second identifying of immediatelypreceding non-null characters displayed in the editable section;searching the second database for a textual form of the received secondspoken word, the searching of the second database comprising comparingthe received second spoken word to the received spoken word stored, bythe saving, in the second database; and when the received second spokenword is determined, by the comparing, to match the received spoken wordstored, by the saving, in the second database: performing an amending ofone or more characters of the second identified immediately precedingnon-null characters displayed in the editable section based on theassociation of the received spoken word with the textual form of thespoken word stored, by the saving, in the second database; anddisplaying a correct textual form of the second spoken word in theeditable section based on the said amending.
 102. The method of claim100, wherein the abnormal operating manner comprises a pressing down onthe character button for greater than a threshold duration.
 103. Themethod of claim 100, further comprising displaying more than one textualforms of the spoken word on the graphical display when the searching ofany of the subsets return more than one match, wherein at least one ofthe displayed textual forms are user-selectable from among the more thanone displayed textual forms.
 104. The method of claim 100, wherein thekeyboard comprises a virtual keyboard displayable, by the processor, onthe graphical display.
 105. The method of claim 100, further comprisingdeactivating the character button after the character button is pressedin an abnormal operating matter.
 106. The method of claim 100, whereinone or more of the first and second subsets comprise words having one ormore characters related to one or more of the identified immediatelypreceding non-null characters.
 107. A method for processing userinteractions with a processor, the method comprising: receiving a firstuser-initiated action performed on a first character button of akeyboard, the first character button representing a first character;when the received first user-initiated action performed on the firstcharacter button representing the first character is performed in anormal operating manner, displaying the first character in an editablesection displayed on a graphical display; when the received firstuser-initiated action performed on the first character buttonrepresenting the first character is performed in an abnormal operatingmanner: activating a microphone and receiving, by the microphone, afirst spoken word; identifying immediately preceding non-null charactersdisplayed in the editable section; identifying a first subset of adatabase, the first subset comprising words having the identifiedimmediately preceding non-null characters in any order; searching thefirst subset for a textual form of the received first spoken word; andwhen the search of the first subset yields a match to the received firstspoken word: causing the identified immediately preceding non-nullcharacters displayed in the editable section to display an overallcorrect textual form of the received spoken word found in the searchingof the first subset; and saving, in a second database, the receivedfirst spoken word and an association of the received first spoken wordwith the textual form of the first spoken word found in the searching ofthe first subset; receiving a second user-initiated action performed ona second character button of the keyboard, the second character buttonrepresenting a second character, the second user-initiated actionreceived after the receiving of the first user-initiated action; whenthe received second user-initiated action performed on the secondcharacter button representing the second character is performed in thenormal operating manner, displaying the second character in the editablesection displayed on the graphical display; and when the received seconduser-initiated action performed on the second character buttonrepresenting the second character is performed in the abnormal operatingmanner: activating the microphone and receiving, by the microphone, asecond spoken word; performing a second identifying of immediatelypreceding non-null characters displayed in the editable section;searching the second database for a textual form of the received secondspoken word, the searching of the second database comprising comparingthe received second spoken word to the received first spoken wordstored, by the saving, in the second database; and when the receivedsecond spoken word matches the received first spoken word stored, by thesaving, in the second database: causing the second identifiedimmediately preceding non-null characters displayed in the editablesection to display an overall correct textual form of the received firstspoken word based on the association of the received first spoken wordwith the textual form of the first spoken word stored, by the saving, inthe second database.
 108. The method of claim 107, further comprising:when the received second spoken word does not match the received firstspoken word stored, by the saving, in the second database: searching asecond subset of the database for a textual form of the received secondspoken word, the second subset selected to comprise words having thesecond identified immediately preceding non-null characters in anyorder; and causing the second identified immediately preceding non-nullcharacters displayed in the editable section to display an overallcorrect textual form of the received second spoken word found in thesearching of the second subset.
 109. The method of claim 107, furthercomprising: when the search of the first subset does not yield a matchto the received first spoken word: searching a third subset of thedatabase for the textual form of the received first spoken word, thethird subset comprising words not having one or more of the identifiedimmediately preceding non-null characters displayed in the editablesection; and causing the identified immediately preceding non-nullcharacters displayed in the editable section to display an overallcorrect textual form of the received first spoken word found in thesearching of the third subset.
 110. The method of claim 107, wherein theabnormal operating manner comprises a pressing down on the characterbutton for greater than a threshold duration.
 111. The method of claim107, further comprising displaying more than one textual forms of thespoken word on the graphical display when the searching of any of thesubsets return more than one match, wherein at least one of thedisplayed textual forms are user-selectable from among the more than onedisplayed textual forms.
 112. The method of claim 107, wherein thekeyboard comprises a virtual keyboard displayable, by the processor, onthe graphical display.
 113. The method of claim 107, further comprisingdeactivating the character button after the character button is pressedin an abnormal operating matter.
 114. The method of claim 107, whereinone or more of the first subset comprises words having one or morecharacters related to one or more of the identified immediatelypreceding non-null characters.